package com.example.piece.ui.demo

import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.databinding.ViewDataBinding
import com.therouter.router.Route
import com.example.base.ext.navigationTo
import com.example.base.ext.toast
import com.example.piece.R
import com.example.piece.constant.RoutePath
import com.example.piece.databinding.TestActivityStatusBarUtilsBinding
import com.example.piece.entity.HomeTypeInfoEntity
import com.example.piece.ui.activity.Layer3Activity
import com.example.piece.ui.demo.adapter.StatusBarTypeAdapter
import com.gyf.immersionbar.BarHide
import com.gyf.immersionbar.ImmersionBar

/**
 * 状态栏
 */

@Route(path = RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_ACTIVITY)
class StatusBarUtilsTestActivity :
    Layer3Activity<TestActivityStatusBarUtilsBinding, ViewDataBinding>() {
    override val isTransparentStatusBar: Boolean = true
    override val isLockPortrait: Boolean = true
    override val statusBarAlpha: Int = 0
    override val isDarkMode: Boolean = true
    override val isFitsSystemWindows: Boolean = false
    override val leftIcon1Res: Int = R.drawable.ic_back
    override val centerLayoutRes: Int = R.layout.test_activity_status_bar_utils
    override val title: String
        get() = "状态栏测试"

    /**  类型 Adapter  **/
    private val statusBarTypeAdapter: StatusBarTypeAdapter by lazy {
        val adapter = StatusBarTypeAdapter(emptyList())
        mCenterViewBinding?.rv?.adapter = adapter
        adapter
    }

    override fun onClickLeftIcon1(view: View) {
        onBackPressed()
    }

    override fun initData(savedInstanceState: Bundle?) {
        super.initData(savedInstanceState)
        statusBarTypeAdapter.onItemClickChooseFunction { entity, position ->
            when (entity.name) {
                "Bar相关参数信息" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_INfO_ACTIVITY
                    )
                }
                "图片状态栏+彩色导航栏" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_PC
                    )
                }
                "全屏图片" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_P
                    )
                }
                "彩色状态栏+彩色导航栏" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_CC
                    )
                }
                "仿QQ状态栏和导航栏渐变色" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_QQ
                    )
                }
                "结合侧滑返回使用" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_S
                    )
                }

                "结合fragment使用" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_F
                    )
                }
                "结合dialog使用" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_D
                    )
                }
                "结合popuwindow" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_POP
                    )
                }


                "结合侧边栏使用" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_SS
                    )
                }
                "结合coordinatorLayout使用" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_C
                    )
                }
                "结合Tablayout使用" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_T
                    )
                }
                "结合webView使用" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_W
                    )
                }
                "结合actionbar使用" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_A
                    )
                }
                "修改Flyme OS状态栏字体颜色" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_FLYME
                    )
                }
                "解决布局顶部和状态栏重叠问题" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_BZ
                    )
                }
                "解决EditText和软键盘的问题" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_E
                    )
                }
                "界面全是EditText" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_AE
                    )
                }
                "登录界面" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_L
                    )
                }
                "解决白色状态栏问题" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_WR
                    )
                }
                "自动根据状态栏颜色调整字体" -> {
                    navigationTo(
                        RoutePath.TESTActivity.STATUS_BAR_UTILS_TEST_AUTO
                    )
                }
                "隐藏状态栏" -> {
                    ImmersionBar.with(this).hideBar(BarHide.FLAG_HIDE_STATUS_BAR).init()

                }
                "隐藏导航栏" -> {
                    if (ImmersionBar.hasNavigationBar(this)) {
                        ImmersionBar.with(this).hideBar(BarHide.FLAG_HIDE_NAVIGATION_BAR).init()
                    } else {
                        toast( "当前设备没有导航栏或者导航栏已经被隐藏或者低于4.4系统", Toast.LENGTH_SHORT)
                    }
                }

                "隐藏全部" -> {
                    ImmersionBar.with(this).hideBar(BarHide.FLAG_HIDE_BAR).init()

                }
                "恢复显示" -> {
                    ImmersionBar.with(this).hideBar(BarHide.FLAG_SHOW_BAR).init()

                }
                "有导航栏的情况，activity全屏显示（fullScreen方法演示）（仔细看“我是底部”四个字）" -> {
                    if (ImmersionBar.hasNavigationBar(this)) {
                        val barParams = ImmersionBar.with(this).barParams
                        if (barParams.fullScreen) {
                            ImmersionBar.with(this).fullScreen(false)
                                .navigationBarColor(R.color.colorPrimary).init()
                        } else {
                            ImmersionBar.with(this).fullScreen(true).transparentNavigationBar()
                                .init()
                        }
                    } else {
                        toast( "当前设备没有导航栏或者导航栏已经被隐藏或者低于4.4系统", Toast.LENGTH_SHORT)

                    }
                }
                "状态栏字体颜色为深色（Android6.0以上或者MIUI6以上或者FlymeOS4+）" -> {
                    if (ImmersionBar.isSupportStatusBarDarkFont()) {
                        ImmersionBar.with(this).statusBarDarkFont(true).init()
                    } else {
                        toast( "当前设备不支持状态栏字体变色", Toast.LENGTH_SHORT)
                    }
                }
                "状态栏颜色为亮色（默认就是亮色）" -> {
                    ImmersionBar.with(this).statusBarDarkFont(false).init()

                }


            }
        }
        var data = mutableListOf<HomeTypeInfoEntity>()
        data.add(HomeTypeInfoEntity("Bar相关参数信息", "Bar相关参数信息"))
        data.add(HomeTypeInfoEntity("图片状态栏+彩色导航栏", "图片状态栏+彩色导航栏"))
        data.add(HomeTypeInfoEntity("全屏图片", "全屏图片"))
        data.add(HomeTypeInfoEntity("彩色状态栏+彩色导航栏", "彩色状态栏+彩色导航栏"))
        data.add(HomeTypeInfoEntity("仿QQ状态栏和导航栏渐变色", "仿QQ状态栏和导航栏渐变色"))
        data.add(HomeTypeInfoEntity("结合侧滑返回使用", "结合侧滑返回使用"))
        data.add(HomeTypeInfoEntity("结合fragment使用", "结合fragment使用"))
        data.add(HomeTypeInfoEntity("结合dialog使用", "结合dialog使用"))
        data.add(HomeTypeInfoEntity("结合popuwindow", "结合popuwindow"))

        data.add(HomeTypeInfoEntity("结合侧边栏使用", "结合侧边栏使用"))
        data.add(HomeTypeInfoEntity("结合coordinatorLayout使用", "结合coordinatorLayout使用"))
        data.add(HomeTypeInfoEntity("结合Tablayout使用", "结合Tablayout使用"))
        data.add(HomeTypeInfoEntity("结合webView使用", "结合webView使用"))
        data.add(HomeTypeInfoEntity("结合actionbar使用", "结合actionbar使用"))
        data.add(HomeTypeInfoEntity("修改Flyme OS状态栏字体颜色", "修改Flyme OS状态栏字体颜色"))
        data.add(HomeTypeInfoEntity("解决布局顶部和状态栏重叠问题", "解决布局顶部和状态栏重叠问题"))
        data.add(HomeTypeInfoEntity("解决EditText和软键盘的问题", "解决EditText和软键盘的问题"))
        data.add(HomeTypeInfoEntity("界面全是EditText", "界面全是EditText"))
        data.add(HomeTypeInfoEntity("登录界面", "登录界面"))
        data.add(HomeTypeInfoEntity("解决白色状态栏问题", "解决白色状态栏问题"))
        data.add(HomeTypeInfoEntity("自动根据状态栏颜色调整字体", "自动根据状态栏颜色调整字体"))
        data.add(HomeTypeInfoEntity("隐藏状态栏", "隐藏状态栏"))
        data.add(HomeTypeInfoEntity("隐藏导航栏", "隐藏导航栏"))


        data.add(HomeTypeInfoEntity("隐藏全部", "隐藏全部"))
        data.add(HomeTypeInfoEntity("恢复显示", "恢复显示"))
        data.add(
            HomeTypeInfoEntity(
                "有导航栏的情况，activity全屏显示（fullScreen方法演示）（仔细看“我是底部”四个字）",
                "有导航栏的情况，activity全屏显示（fullScreen方法演示）（仔细看“我是底部”四个字"
            )
        )
        data.add(
            HomeTypeInfoEntity(
                "状态栏字体颜色为深色（Android6.0以上或者MIUI6以上或者FlymeOS4+）",
                "状态栏字体颜色为深色（Android6.0以上或者MIUI6以上或者FlymeOS4+）"
            )
        )
        data.add(HomeTypeInfoEntity("状态栏颜色为亮色（默认就是亮色）", "状态栏颜色为亮色（默认就是亮色）"))



        mCenterViewBinding?.rv?.adapter = statusBarTypeAdapter

        statusBarTypeAdapter.setNewData(data)


    }


}